package cn.com.cifi.mars.service;

import cn.com.cifi.mars.bean.dto.ProjectByStagesDto;
import cn.com.cifi.mars.bean.vo.sys.rsp.GroupUserVo;
import cn.com.cifi.mars.bean.vo.sys.rsp.IdmUserVo;
import cn.com.cifi.mars.bean.vo.sys.rsp.UserFunctionalPermissionVo;
import cn.com.cifi.mars.entity.common.IdmUser;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.HashSet;
import java.util.List;


public interface IdmUserService extends IService<IdmUser> {
    /**
	 * 根据用户id获取用户信息
     */
    IdmUser selectByUserName(String userName);
    /**
	 * 根据账号获取用户信息
     */
 	IdmUser getByAlias(String alias);
	/**
	 * 根据账号获取用户信息,限制获取一条信息
	 */
	IdmUser getByAliasLimitOne(String alias);
    /**
	 * 组织机构下的用户信息分页
	 */
    IdmUserVo queryUserPageList(String current,String pageSize,String departmentnumber,String usercn);
    /**
	 * 获取用户的数据权限
	 */
    List<ProjectByStagesDto> queryUserDataPermissions(String userId);
	/**
	 * 获取用户的项目权限 只返回项目ID
	 */
	List<String> queryUserProjectPermissions(String userId);
	/**
	 * 获取用户的事业部权限
	 */
	List<String> queryUserDivisionPermissions(String username);
    /**
	 * 获取用户的功能权限
	 */
    UserFunctionalPermissionVo queryUserFunctionalPermissions(String userId);
    
    /**
     * 根据岗位组活组织id获取用户信息
     */
    HashSet<GroupUserVo> getGroupUserInfo(String positionGroupId,String orgdepid); 
    /**
     * 同步用户信息
     */
    String syncUser(String time,String cookie,String alias);
    
    /**
     *获取岗位组对应的用户信息
     */
	List<IdmUser> getPositionGroupUserList(String positionGroupId,String orgdepid);
	/**
     *根据账号列表获取用户信息
     */
	List<IdmUser> getByAliasList(List<String> aliasList);

}
